OPC Data Client-UA allows you to query information contained in so called OPC-UA Global Discovery Server(s). A Global Discovery Server (GDS) maintains discovery information for OPC UA applications available in an administrative domain.
If you want to retrieve a list of OPC Unified Architecture servers in an administrative domain, call the DiscoverGlobalServers method, passing it the endpoint of the GDS.
In addition, you can call an overload of the DiscoverGlobalServers method that also takes a filter parameter of type UAQueryServerFilter. Using this filter, you can limit the search only to servers that meet the specified criteria. The criteria include:
You can also call the EasyUAClient.DiscoverGlobalServers method that takes no arguments, in which case the endpoint descriptor of the GDS will be taken from the GdsEndpointDescriptor property of the SharedParameters.
In all cases described above, you will receive back a UADiscoveryElementCollection object, which is collection of UADiscoveryElement-s. Each element contains a server's discovery URL. The discovery URL is the main piece of information that you can further use if you want to connect to that OPC-UA server. Each UADiscoveryElement contains information gathered about one OPC server found by the discovery process, including things like the application name, server capabilities, etc.
You can also obtain the results unflattened:
In .NET, if you want to connect to the discovered OPC server later in your code by calling other methods, use the built-in conversion of UADiscoveryElement to UAEndpointDescriptor, and pass the resulting object as an endpointDescriptor argument either directly to some other method call.
Note that QuickOPC returns UADiscoveryElementCollection from all OPC UA discovery methods, but the amount of information contained in each returned UADiscoveryElement depends on the discovery approach used. For OPC UA Global Discovery and OPC UA Network Discovery, only following primary properties of each UADiscoveryElement are filled in: